﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Net;
using System.IO;
using System.Security.Cryptography;
using System.Globalization;
using System.Threading;
using System.Reflection;

namespace DreamBox.BLL.Upyun
{
    public class Upload
    {
        public bool Write(string filename,Stream imgFile,UpYun upyun) 
        {
            //UpYun upyun = new UpYun("buyungu","dooyuan","ypy40808891");

            /// 上传文件
            Hashtable headers = new Hashtable();
            //uy.delete("tes\ttd.jpg", headers);
            //FileStream fs = new FileStream(imgpath, FileMode.Open, FileAccess.Read);
            BinaryReader r = new BinaryReader(imgFile);
            byte[] postArray = r.ReadBytes((int)imgFile.Length);
            /// 设置待上传文件的 Content-MD5 值（如又拍云服务端收到的文件MD5值与用户设置的不一致，将回报 406 Not Acceptable 错误）
            //upyun.setContentMD5(UpYun.md5_file("c:\\1c36319a4ec53893663bd1f1a7b7051e.jpg"));

            /// 设置待上传文件的 访问密钥（注意：仅支持图片空！，设置密钥后，无法根据原文件URL直接访问，需带 URL 后面加上 （缩略图间隔标志符+密钥） 进行访问）
            /// 如缩略图间隔标志符为 ! ，密钥为 bac，上传文件路径为 /folder/test.jpg ，那么该图片的对外访问地址为： http://空间域名/folder/test.jpg!bac
            upyun.setFileSecret("byg");

            bool b = upyun.writeFile(filename, postArray, true);
            // 上传文件时可使用 upyun.writeFile("/a/test.jpg",postArray, true); //进行父级目录的自动创建（最深10级目录）

            return b;
        }
        /// <summary>
        /// 图片上传
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="ImgFile"></param>
        public bool ImgUpload(string filename, Stream ImgFile)
        {
            UpYun upyun = new UpYun("grapesimages", "buyungu2013", "ypy40808891");
            return Write(filename, ImgFile, upyun);
        }
        /// <summary>
        /// 文件上传
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="Files"></param>
        public bool FileUpload(string filename, Stream Files)
        {
            UpYun upyun = new UpYun("grapesfile", "buyungu2013", "ypy40808891");
            return Write(filename, Files, upyun);
        }
    }
}
